package com.chenjun.designpattern.structural.adapter;

/**
 * <h2>
 * 适配器模式有两种类型：类的适配器模式和对象的适配器模式。
 * </h2>
 * <p>
 * JDK中有很多Adapter类，如WindowAdapter，MouserAdapter等,
 * 它们分别实现了WindowsListerner，MouseListener等接口，这些都是类适配器的使用实例 JDK 几乎所有申明了很多方法
 * 的接口，都会有它自己的 适配器类
 * </p>
 * 
 * <p>
 * ：Convert the interface of a class into another interface clients expect。
 *   适配器模式能让原本互相接口不能匹配的类变得能够一起工作。也就是说，
 *   适配器将一个类的接口变成客户端所期望的另外一个接口。
     适配器模式有两种类型：【类的适配器模式】和【对象的适配器模式】。
     区别就在于前者适配器和被适配者是父子类继承关系，后者是直接把被适配的对象作为一个成员变量引用
 * </p>
 * 
 * @author admin
 *
 */
public class 适配器模式
{
	public static void main(String[] args)
	{
		Target target = new Adapter();
		target.request();
	}
}

interface Target
{
	public void request();
}

/**
 * 被适配者
 * @author admin
 *
 */
class Adaptee
{
	public void doSthing()
	{
		System.out.println("被适配者doSthing()");
	}
}

/**
 * 适配器在其中把二者连接，让他们的方法可以直接相互调用
 * @author admin
 *
 */
class Adapter extends Adaptee implements Target
{
	@Override
	public void request()
	{
		super.doSthing();
	}
}
